#include <stdio.h>
void print_arr1(char *p[],int length);
void print_arr2(char **p,int length);
int main(void)
{
	char *p[] = {"jin1","jin2","jin3"};
	// 这里是不能进行赋值的，指针指向的是一个常量区地址
	//*p[0] = 'a'; 
	printf("p[0] = %p;*p[0] = %c;p[0] = %s\n",p[0],*p[0],p[0]);
	print_arr1(p,3);
	print_arr2(p,3);
	return 0;
}
void print_arr1(char *p[],int length)
{
	for(int i = 0;i < length;i++)
	{
		printf("p[%d] = %s\n",p[i]);
	}
}
// 参数p为二级指针
void print_arr2(char **p,int length)
{
	for(int i = 0;i < length;i++)
	{
		// 下面两个的输出是一样的 *(p + i) = p[i]
		// %s 需要的是一个地址，所以这个不需要 **(p + i)，**(p + i) 是字符串数组的行的第一列的之
		printf("p[%d] = %s\n",*(p + i));
		//printf("p[%d] = %s\n",p[i]);
	}
}
